package com.woniuxy01;


interface MyCal {
    int cal(int x, int y);
}

class AddCal implements MyCal {

    @Override
    public int cal(int x, int y) {
        return x + y;
    }
}

class SubCal implements MyCal {

    @Override
    public int cal(int x, int y) {
        return x - y;
    }
}

public class Test06 {

    public static void main(String[] args) {
        //JDK1.8推出的新语法
        //Lambda表达式，就是匿名内部类的一种简化写法,语法糖
        //(参数列表,就是方法的参数)->{方法体，就是实现方法}
        //MyCal cal = 就是这个接口的方法的一种实现方式，接口实现类对象
        MyCal myCal =(int x,int y)->{return x*y;};
        System.out.println(myCal.cal(10, 5));

        System.out.println(((MyCal) (int x, int y) -> {
            return x / y;
        }).cal(10, 5));


        MyCal myCal1 =( x, y)-> x*y;

    }

    private static void test01() {
        MyCal cal = new AddCal();
        int result = cal.cal(1, 2);
        System.out.println(result);

        //匿名内部类
        MyCal cal2 = new MyCal() {
            @Override
            public int cal(int x, int y) {
                return x * y;
            }
        };
        System.out.println(cal2.cal(5, 3));

//        result= ((MyCal)new MyCal() {
//            @Override
//            public int cal(int x, int y) {
//                return x / y;
//            }
//        }).cal(100, 10);


        System.out.println(((MyCal) new MyCal() {
            @Override
            public int cal(int x, int y) {
                return x / y;
            }
        }).cal(100, 10));
    }
}
